home *** CD-ROM | disk | FTP | other *** search
- /* Scheme In One Define.
-
- The garbage collector, the name and other parts of this program are
-
- * COPYRIGHT (c) 1989 BY *
- * PARADIGM ASSOCIATES INCORPORATED, CAMBRIDGE, MASSACHUSETTS. *
-
- Conversion to full scheme standard, characters, vectors, ports, complex &
- rational numbers, and other major enhancments by
-
- * Scaglione Ermanno, v. Pirinoli 16 IMPERIA P.M. 18100 ITALY *
-
- Permission to use, copy, modify, distribute and sell this software and its
- documentation for any purpose and without fee is hereby granted, provided
- that the above copyright notice appear in all copies and that both that
- copyright notice and this permission notice appear in supporting
- documentation, and that the name of Paradigm Associates Inc not be used in
- advertising or publicity pertaining to distribution of the software without
- specific, written prior permission.
-
- PARADIGM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- PARADIGM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
- IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
- OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- */
-
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
- #include <setjmp.h>
- #include <signal.h>
- #include <math.h>
-
- #include "siod.h"
-
- LISP heap,heap_end,heap_org;
-
- long heap_size = 5000;
- long full_set = 1;
- char *init_file = (char *) NULL;
- char tkbuffer[TKBUFFERN];
- long quiet = 0;
- long gc_cells_allocated = 0;
-
- double gc_time_taken;
- double gc_rt;
- long gc_cells_collected;
-
- LISP *stack_start_ptr;
- LISP freelist;
-
- jmp_buf errjmp;
- long errjmp_ok = 0;
- long nointerrupt = 1;
- long interrupt_differed = 0;
-
- struct gc_protected *protected_registers = NULL;
-
- LISP truth = NIL;
- LISP eof_val = NIL;
- LISP sym_the_non_printing = NIL;
- LISP sym_err_string = NIL;
- LISP sym_errobj = NIL;
- LISP sym_inspect = NIL;
- LISP sym_err_han = NIL;
- LISP sym_on_reset = NIL;
- LISP sym_debug_mode = NIL;
- LISP sym_gc_mode = NIL;
- LISP sym_repl_mode = NIL;
- LISP sym_stdin = NIL;
- LISP sym_stdout = NIL;
- LISP sym_scheme_top_level = NIL;
- LISP sym_input_port = NIL;
- LISP sym_output_port = NIL;
- LISP val_scheme_top_level = NIL;
- LISP val_input_port = NIL;
- LISP val_output_port = NIL;
- LISP sym_standard_input = NIL;
- LISP sym_standard_output = NIL;
- LISP sym_progn = NIL;
- LISP sym_fluid_environment = NIL;
- LISP sym_user_environment = NIL;
- LISP sym_initial_environment = NIL;
- LISP sym_lambda = NIL;
- LISP sym_quote = NIL;
- LISP sym_dot = NIL;
- LISP sym_else = NIL;
- LISP unbound_marker = NIL;
- LISP cur_exp = NIL;
- LISP cur_env = NIL;
-
- LISP *chararray;
- LISP *fixarray;
- long fixarray_dim = 100;
- LISP *obarray;
- long obarray_dim = 100;
- FILE *transfile=NULL;
-
- struct catch_frame *catch_framep = (struct catch_frame *) NULL;
-
- jmp_buf save_regs_gc_mark;
-
-